#ifndef __LIB_AGORA_ADMIN_USER_H__
#define __LIB_AGORA_ADMIN_USER_H__

#include "AdminIUser.h"
#include "AdminIChannel.h"
#include "AdminIHostRight.h"

namespace AgoraAdmin
{

	class	User : public IUser
	{
	public:
		User(const unsigned id, const std::string& login, const std::string& password);
		~User(void);

		const unsigned int	GetId() const;
		const std::string&	GetLogin() const;
		void				SetLogin(const std::string& login);
		const std::string&	GetPassword() const;
		void				SetPassword(const std::string& password);
		IHostRight*			GetHostRight() const;
		void				SetNoCurrentChannel(void);
		unsigned int		GetCurrentChannelId() const;
		void				SetCurrentChannelId(unsigned int id);
		bool				IsConnected() const;
		void				SetConnected(const bool value);
	private:
		unsigned int		_id;
		std::string			_login;
		std::string			_password;
		IChannelRight*		_currentChannelRight;
		unsigned int		_idCurrentChannel;
		IHostRight*			_hostRight;
		bool				_connected;
	};

}

#endif